
#ifndef COOPERATORAO_MOCK_H
#define COOPERATORAO_MOCK_H

#include <stdint.h>
#include <string>
#include "app_platform/cntl_info.h"

#include "b2b2c/cooperator/po/cooperatormonitormodelpo_cooperator.h"	
#include "b2b2c/cooperator/po/cooperatorsubaccountpo_cooperator.h"	
#include <set>	
#include "b2b2c/cooperator/po/cooperatorpropo_cooperator.h"	
#include <vector>	
#include "b2b2c/cooperator/po/cooperatorbaseinfopo_cooperator.h"	
#include "b2b2c/cooperator/po/cooperatormonitormodelrulepo_cooperator.h"	
#include "b2b2c/cooperator/po/cooperatorlicensepo_cooperator.h"	
#include "b2b2c/cooperator/po/cooperatorsubpropo_cooperator.h"	
#include "b2b2c/cooperator/po/cooperatorsetpo_cooperator.h"	
#include "intf_cooperatorao.h"


namespace b2b2c
{
namespace cooperator
{
namespace ao
{

	class CCooperatorAoMock : public ICooperatorAo{
	public:
	    virtual uint32_t CheckCooperatorPassWd(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::string& cooperatorPassword,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t DeleteCooperatorMonitorModel(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t cooperatorId,
				uint32_t modelId,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetCooperatorBaseInfo(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::string& inReserve,
				std::string& errmsg,
				b2b2c::cooperator::po::CCooperatorBaseInfoPo& cooperatorBaseInfoPo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			cooperatorBaseInfoPo = m_cooperatorBaseInfoPo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetCooperatorBaseInfoList(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const std::set<uint64_t >& cooperatorId,
				const std::string& inReserve,
				std::string& errmsg,
				std::vector<b2b2c::cooperator::po::CCooperatorBaseInfoPo >& cooperatorBaseInfoPo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			cooperatorBaseInfoPo = m_cooperatorBaseInfoPo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetCooperatorIdByIcsonId(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t icsonId,
				const std::string& inReserve,
				std::string& errmsg,
				uint64_t& cooperatorId,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			cooperatorId = m_cooperatorId;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetCooperatorKey(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& sCooperatorKey,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			sCooperatorKey = m_sCooperatorKey;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetCooperatorLicense(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::set<uint8_t >& licenseType,
				const std::string& inReserve,
				std::string& errmsg,
				std::vector<b2b2c::cooperator::po::CCooperatorLicensePo >& cooperatorLicensePo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			cooperatorLicensePo = m_cooperatorLicensePo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetCooperatorMonitorModel(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t cooperatorId,
				uint32_t modelId,
				const std::string& inReserve,
				std::string& errmsg,
				b2b2c::cooperator::po::CCooperatorMonitorModelPo& CooperatorMonitorModelPo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			CooperatorMonitorModelPo = m_CooperatorMonitorModelPo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetCooperatorMonitorModelList(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t cooperatorId,
				const std::string& inReserve,
				std::string& errmsg,
				std::vector<b2b2c::cooperator::po::CCooperatorMonitorModelPo >& CooperatorMonitorModelPo,
				std::string& rulesruleJson,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			CooperatorMonitorModelPo = m_CooperatorMonitorModelPo;
			rulesruleJson = m_rulesruleJson;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t LogisticsSetCooperatorPro(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t option,
				const b2b2c::cooperator::po::CCooperatorProPo& cooperatorProPo,
				const std::string& inReserve,
				std::string& errmsg,
				b2b2c::cooperator::po::CCooperatorBaseInfoPo& cooperatorBaseInfoPo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			cooperatorBaseInfoPo = m_cooperatorBaseInfoPo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t SetCooperatorInfo(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t option,
				const b2b2c::cooperator::po::CCooperatorSetPo& cooperatorSetPo,
				const std::string& inReserve,
				std::string& errmsg,
				b2b2c::cooperator::po::CCooperatorBaseInfoPo& cooperatorBaseInfoPo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			cooperatorBaseInfoPo = m_cooperatorBaseInfoPo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t SetCooperatorPassWd(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::string& cooperatorOldPassword,
				const std::string& cooperatorNewPassword,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t UpdateCooperatorBaseInfo(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const b2b2c::cooperator::po::CCooperatorBaseInfoPo& cooperatorBaseInfoPo,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t UpdateCooperatorLicense(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const b2b2c::cooperator::po::CCooperatorLicensePo& cooperatorLicensePo,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t UpdateCooperatorMonitorModel(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const b2b2c::cooperator::po::CCooperatorMonitorModelPo& CooperatorMonitorModelPo,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			outReserve = m_outReserve;
			return 0;
	    }		
	
   public:
			std::string m_errmsg;
			std::string m_outReserve;
			b2b2c::cooperator::po::CooperatorBaseInfoPo m_cooperatorBaseInfoPo;
			std::vector<b2b2c::cooperator::po::CooperatorBaseInfoPo > m_cooperatorBaseInfoPo;
			uint64_t m_cooperatorId;
			std::string m_sCooperatorKey;
			std::vector<b2b2c::cooperator::po::CooperatorLicensePo > m_cooperatorLicensePo;
			b2b2c::cooperator::po::CooperatorMonitorModelPo m_CooperatorMonitorModelPo;
			std::vector<b2b2c::cooperator::po::CooperatorMonitorModelPo > m_CooperatorMonitorModelPo;
			std::string m_rulesruleJson;
	};
	
}
}
}

#endif /* COOPERATORAO_MOCK_H */

